/*
 * activation.h
 *
 *  Created on: Sep 4, 2013
 *      Author: Alan
 */

#ifndef ACTIVATION_H_
#define ACTIVATION_H_
#include "types.h"

struct netdata;
struct vectorizedNet;

//activation functions
float32 activationSigmoid(struct netdata* , float32 a);
float32 activationTanh(struct netdata* , float32 a);
float32 activationLinear(struct netdata*, float32 a);
float32 activationSoftmax(struct netdata*,  float32 a);

//diff activation functions
float32 diffActivationSigmoid(struct netdata*,  float32 a);
float32 diffActivationTanh(struct netdata*,  float32 a);
float32 diffActivationLinear(struct netdata*,  float32 a);
float32 diffActivationSoftmax(struct netdata*,  float32 a);

//activation functions
float32* activationSigmoidV(struct vectorizedNet* , float32* a, uint32 size);
float32* activationTanhV(struct vectorizedNet* , float32* a, uint32 size);
float32* activationLinearV(struct vectorizedNet*, float32* a, uint32 size);
float32* activationSoftmaxV(struct vectorizedNet*,  float32* a, uint32 size);

//diff activation functions
float32* diffActivationSigmoidV(struct vectorizedNet*,  float32* a, uint32 size);
float32* diffActivationTanhV(struct vectorizedNet*,  float32* a, uint32 size);
float32* diffActivationLinearV(struct vectorizedNet*,  float32* a, uint32 size);
float32* diffActivationSoftmaxV(struct vectorizedNet*,  float32* a, uint32 size);
#endif /* ACTIVATION_H_ */
